package com.CommunityHub.kiana.service;

import com.CommunityHub.kiana.dao.VenueInfoDAO;
import com.CommunityHub.kiana.po.VenueInfo;

import java.sql.SQLException;
import java.util.List;

public class VenueInfoService {
    private final VenueInfoDAO venueInfoDAO = new VenueInfoDAO();

    // 根据筛选条件查询场馆
    public List<VenueInfo> getVenuesByFilters(String venueType, Integer usageStatus, String location) throws SQLException {
        return venueInfoDAO.findByFilters(venueType, usageStatus, location);
    }

    // 查询场馆详情
    public VenueInfo getVenueById(Integer venueId) throws SQLException {
        return venueInfoDAO.findById(venueId);
    }

    // 切换场馆状态（可用↔维护中）
    public boolean toggleVenueStatus(Integer venueId) throws SQLException {
        VenueInfo venue = venueInfoDAO.findById(venueId);
        if (venue == null) {
            return false;
        }
        // 状态反转：1（可用）→ 0（维护中），0 → 1
        Integer newStatus = venue.getUsageStatus() == 1 ? 0 : 1;
        return venueInfoDAO.updateStatus(venueId, newStatus);
    }
    public void updateVenue(VenueInfo venueInfo) throws SQLException {
        // 校验参数
        if (venueInfo == null || venueInfo.getVenueId() <= 0) {
            throw new IllegalArgumentException("无效的场馆信息或场馆ID");
        }

        // 调用 DAO 方法执行更新
        venueInfoDAO.update(venueInfo);
    }

    public void addVenue(VenueInfo newVenue) {
        venueInfoDAO.addVenue(newVenue);
    }

    public boolean deleteVenue(int venueId) {
        return venueInfoDAO.deleteVenue(venueId);
    }
}